Unity检测目标点是否在扇形攻击范围内 | 您所在的位置:网站首页 › unity 敌人生成点 › Unity检测目标点是否在扇形攻击范围内 |
在游戏设计中,有的技能的攻击范围是一个扇形,判断场景中的怪物是否在扇形范围内,我们可以理解具体思路: 首先,判断该目标点与技能释放者的距离是否小于扇形的半径; 其次目标点与技能释放者面对的方向向量夹角是否小于扇形角度的二分之一; 如上图所示,1为技能释放者,2为目标点 代码如下: using UnityEngine; using System.Collections; public class TestTrans : MonoBehaviour { public Transform Target; private float SkillDistance = 5;//扇形距离 private float SkillJiaodu = 60;//扇形的角度 void LateUpdate() { float distance = Vector3.Distance(transform.position, Target.position);//距离 Vector3 norVec = transform.rotation * Vector3.forward * 5;//此处*5只是为了画线更清楚,可以不要 Vector3 temVec = Target.position - transform.position; Debug.DrawLine(transform.position, norVec, Color.red);//画出技能释放者面对的方向向量 Debug.DrawLine(transform.position, Target.position, Color.green);//画出技能释放者与目标点的连线 float jiajiao = Mathf.Acos(Vector3.Dot(norVec.normalized, temVec.normalized)) * Mathf.Rad2Deg;//计算两个向量间的夹角 if (distance < SkillDistance) { if (jiajiao |
CopyRight 2018-2019 实验室设备网 版权所有 |